1
За пределами платформенно-зависимого кода
AI013Lesson 8
00:00

Исторически у C++ не было единого способа взаимодействия с аппаратными сервисами, что вынуждало разработчиков работать в «платформенных изоляторах» где кодовые базы были фрагментированы из-за специфичных для ОС интерфейсов, таких как Win32 или POSIX. Этот слайд отмечает переход к современной эре, когда стандартная библиотека C++ служит универсальным уровнем абстракции.

1. Конец #ifdef-спагетти

До стандартизации простые задачи, такие как создание потока или навигация по каталогу, требовали использования макросов препроцессора для обработки различных системных заголовков (например, <windows.h> или <pthread.h>). Это привело к увеличению кода и его трудности в поддержке.

2. Парадигма сдвига в С++11

Стандарт начал восстанавливать контроль над системными ресурсами. В частности, C++11 добавил высокий уровень функций параллелизма, включая std::thread, std::mutex и std::future, что стандартизировало отношение языка к процессору.

Устаревшее (фрагментированное)#ifdef _WIN32CreateThread(...);#elsepthread_create(...);#endifСовременное (стандартизированное)std::thread t(task);

3. Отделение логики поставщика

Переходя за рамки платформенно-зависимого кода, стандартная библиотека обеспечивает гарантию «написано один раз, скомпилировано везде». Нагрузка по поддержке платформы переходит от разработчика к поставщику компилятора.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>